/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package base.node;

import java.io.Serializable;

/**
 * Defines the power consumption for specific functionalities
 * @author artem, Arvanitis Ioannis
 */
public class PowerPolicy implements Serializable {

    private float movementEnergy;
    private float idleEnergy;
    private float transmissionEnergy;
    private float receptionEnergy;
    private float processEnergy;

    public PowerPolicy(float movementEnergy, float idleEnergy, float transmissionEnergy, float receptionEnergy, float processEnergy) {
        setMovementEnergyConsumption(movementEnergy);
        setIdleEnergyConsumption(idleEnergy);
        setTransmissionEnergyConsumption(transmissionEnergy);
        setReceptionEnergy(receptionEnergy);
        setProcessEnergy(processEnergy);
    }

    /**
     * Gets the energy consumed in idle state
     * @return the idleEnergy
     */
    public float getIdleEnergyConsumption() {
        return idleEnergy;
    }

    /**
     * Sets the energy consumed in idle state
     * @param idleEnergy
     */
    public void setIdleEnergyConsumption(float idleEnergy) {
        this.idleEnergy = idleEnergy;
    }

    /**
     * Gets the energy consumed while transmitting
     * @return the transmissionEnergy
     */
    public float getTransmissionEnergyConsumption() {
        return transmissionEnergy;
    }

    /**
     * Sets the energy consumed while transmitting
     * @param transmissionEnergy
     */
    public void setTransmissionEnergyConsumption(float transmissionEnergy) {
        this.transmissionEnergy = transmissionEnergy;
    }

    /**
     * Gets the energy consumed while receiving
     * @return the receptionEnergy
     */
    public float getReceptionEnergy() {
        return receptionEnergy;
    }

    /**
     * Sets the energy consumed while receiving
     * @param receptionEnergy
     */
    public void setReceptionEnergy(float receptionEnergy) {
        this.receptionEnergy = receptionEnergy;
    }

    /**
     * Gets the energy consumed while processing
     * @return the processEnergy
     */
    public float getProcessEnergy() {
        return processEnergy;
    }

    /**
     * Sets the energy consumed while processing
     * @param processEnergy
     */
    public void setProcessEnergy(float processEnergy) {
        this.processEnergy = processEnergy;
    }

    /**
     * Gets the energy consumed while moving
     * @return the movementEnergy
     */
    public float getMovementEnergyConsumption() {
        return movementEnergy;
    }

    /**
     * Sets the energy consumed while moving
     * @param movementEnergy
     */
    public void setMovementEnergyConsumption(float movementEnergy) {
        this.movementEnergy = movementEnergy;
    }
}
